Leetcode-Roman to Integer

Roman to Integer

将罗马数字转换为阿拉伯数字。
Description

leetcode没有说明具体的转换规则,我是按照罗马数字规则设置的。

解题思路
一个保存罗马数字映射的字典:

1
roman = {'M': 1000,'D': 500 ,'C': 100,'L': 50,'X': 10,'V': 5,'I': 1}

规则:

  • 如果一个元素值比右边元素大,则加上这个元素;
  • 如果一个元素值比右边元素小,则减去这个元素;
  • 始终加上末尾的元素;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
roman = {'M': 1000,'D': 500 ,'C': 100,'L': 50,'X': 10,'V': 5,'I': 1}

num = 0
for i in range(len(s)-1):
if roman[s[i]]>=roman[s[i+1]]:
num = num + roman[s[i]]
else:
num = num - roman[s[i]]

return num+roman[s[-1]]